import os

import xml.dom.minidom


# debe haber una mejor manera de hacer esto!!!


def get_datos_by_id(id):
    if id == "20":
        return get_datos_mes()
    elif id == "30":
        return get_datos_anio()
    elif id == "40":
        return get_datos_semestre()
    elif id == "50":
        return get_datos_ori_sus()
    elif id == "55":
        return get_datos_forma_pago()
    elif id == "60":
        return get_datos_bancos()
    elif id == "65":
        return get_datos_impuesto()
    elif id == "66":
        return get_datos_impuesto_descripcion()
    elif id == "70":
        return get_datos_valor_predeterminado()
    elif id == "80":
        return get_datos_concepto_relacionado()
    elif id == "90":
        return get_datos_rutina_validacion()
    elif id == "100":
        return get_datosImpuestosIce()
    elif id == "110":
        return get_datosDobleTributacion()
    elif id == "120":
        return get_datosSiNo()
    elif id == "130":
        return get_datosEstadoCivil()
    elif id == "140":
        return get_datosTipoActoDonacion()
    elif id == "150":
        return get_datos_codigo_documento()
    else:
        raise "Error de ID en Datos de Referencia", id
        return None

def get_datos_mes():
    list = []
    file = open(os.path.join('XML','DtsRfr.xml'))
    data = file.read()
    dom = xml.dom.minidom.parseString(data)
    file.close()
    for element in dom.getElementsByTagName("datos_mes"):
        #print element
        for x in element.getElementsByTagName("mes"):
            codigo = x.getElementsByTagName("codigo")[0]
            nombre = x.getElementsByTagName("nombre")[0]
            #print codigo.firstChild.nodeValue, nombre.firstChild.nodeValue        
            list.append([codigo.firstChild.nodeValue, nombre.firstChild.nodeValue])
    return list

def get_datos_anio():
    list = []
    file = open(os.path.join('XML','DtsRfr.xml'))
    data = file.read()
    dom = xml.dom.minidom.parseString(data)
    file.close()
    for element in dom.getElementsByTagName("datos_anio"):
        #print element
        for x in element.getElementsByTagName("anio"):
            codigo = x.getElementsByTagName("codigo")[0]
            nombre = x.getElementsByTagName("nombre")[0]
            #print codigo.firstChild.nodeValue, nombre.firstChild.nodeValue
            list.append([codigo.firstChild.nodeValue, nombre.firstChild.nodeValue])
    return list


def get_datos_semestre():
    list = []
    file = open(os.path.join('XML','DtsRfr.xml'))
    data = file.read()
    dom = xml.dom.minidom.parseString(data)
    file.close()
    for element in dom.getElementsByTagName("datos_semestre"):
        #print element
        for x in element.getElementsByTagName("semestre"):
            codigo = x.getElementsByTagName("codigo")[0]
            nombre = x.getElementsByTagName("nombre")[0]
            #print codigo.firstChild.nodeValue, nombre.firstChild.nodeValue
            list.append([codigo.firstChild.nodeValue, nombre.firstChild.nodeValue])
    return list


def get_datos_ori_sus():
    list = []
    file = open(os.path.join('XML','DtsRfr.xml'))
    data = file.read()
    dom = xml.dom.minidom.parseString(data)
    file.close()
    for element in dom.getElementsByTagName("datos_ori_sus"):
        #print element
        for x in element.getElementsByTagName("ori_sus"):
            codigo = x.getElementsByTagName("codigo")[0]
            nombre = x.getElementsByTagName("nombre")[0]
            #print codigo.firstChild.nodeValue, nombre.firstChild.nodeValue
            list.append([codigo.firstChild.nodeValue, nombre.firstChild.nodeValue])
    return list



def get_datos_forma_pago():
    list = []
    file = open(os.path.join('XML','DtsRfr.xml'))
    data = file.read()
    dom = xml.dom.minidom.parseString(data)
    file.close()
    for element in dom.getElementsByTagName("datos_forma_pago"):
        #print element
        for x in element.getElementsByTagName("forma_pago"):
            codigo = x.getElementsByTagName("codigo")[0]
            nombre = x.getElementsByTagName("nombre")[0]
            #print codigo.firstChild.nodeValue, nombre.firstChild.nodeValue
            list.append([codigo.firstChild.nodeValue, nombre.firstChild.nodeValue])
    return list


def get_datos_bancos():
    list = []
    file = open(os.path.join('XML','DtsRfr.xml'))
    data = file.read()
    dom = xml.dom.minidom.parseString(data)
    file.close()
    for element in dom.getElementsByTagName("datos_bancos"):
        #print element
        for x in element.getElementsByTagName("banco"):
            codigo = x.getElementsByTagName("codigo")[0]
            nombre = x.getElementsByTagName("nombre")[0]
            #print codigo.firstChild.nodeValue, nombre.firstChild.nodeValue
            list.append([codigo.firstChild.nodeValue, nombre.firstChild.nodeValue])
    return list


def get_datos_impuesto():
    list = []
    file = open(os.path.join('XML','DtsRfr.xml'))
    data = file.read()
    dom = xml.dom.minidom.parseString(data)
    file.close()
    for element in dom.getElementsByTagName("datos_impuesto"):
        #print element
        for x in element.getElementsByTagName("impuesto"):
            codigo = x.getElementsByTagName("codigo")[0]
            nombre = x.getElementsByTagName("nombre")[0]
            #print codigo.firstChild.nodeValue, nombre.firstChild.nodeValue
            list.append([codigo.firstChild.nodeValue, nombre.firstChild.nodeValue])
    return list


def get_datos_impuesto_descripcion():
    list = []
    file = open(os.path.join('XML','DtsRfr.xml'))
    data = file.read()
    dom = xml.dom.minidom.parseString(data)
    file.close()
    for element in dom.getElementsByTagName("datos_impuesto_descripcion"):
        #print element
        for x in element.getElementsByTagName("impuesto_descripcion"):
            codigo = x.getElementsByTagName("codigo")[0]
            nombre = x.getElementsByTagName("nombre")[0]
            #print codigo.firstChild.nodeValue, nombre.firstChild.nodeValue
            list.append([codigo.firstChild.nodeValue, nombre.firstChild.nodeValue])
    return list


def get_datos_valor_predeterminado():
    list = []
    file = open(os.path.join('XML','DtsRfr.xml'))
    data = file.read()
    dom = xml.dom.minidom.parseString(data)
    file.close()
    for element in dom.getElementsByTagName("datos_valor_predeterminado"):
        #print element
        for x in element.getElementsByTagName("valor_predeterminado"):
            codigo = x.getElementsByTagName("codigo")[0]
            nombre = x.getElementsByTagName("nombre")[0]
            #print codigo.firstChild.nodeValue, nombre.firstChild.nodeValue
            list.append([codigo.firstChild.nodeValue, nombre.firstChild.nodeValue])
    return list


def get_datos_concepto_relacionado():
    list = []
    file = open(os.path.join('XML','DtsRfr.xml'))
    data = file.read()
    dom = xml.dom.minidom.parseString(data)
    file.close()
    for element in dom.getElementsByTagName("datos_concepto_relacionado"):
        #print element
        for x in element.getElementsByTagName("concepto_relacionado"):
            codigo = x.getElementsByTagName("codigo")[0]
            nombre = x.getElementsByTagName("nombre")[0]
            #print codigo.firstChild.nodeValue, nombre.firstChild.nodeValue
        list.append([codigo.firstChild.nodeValue, nombre.firstChild.nodeValue])
    return list


def get_datos_rutina_validacion():
    list = []
    file = open(os.path.join('XML','DtsRfr.xml'))
    data = file.read()
    dom = xml.dom.minidom.parseString(data)
    file.close()
    for element in dom.getElementsByTagName("datos_rutina_validacion"):
        #print element
        for x in element.getElementsByTagName("rutina_validacion"):
            codigo = x.getElementsByTagName("codigo")[0]
            nombre = x.getElementsByTagName("nombre")[0]
            #print codigo.firstChild.nodeValue, nombre.firstChild.nodeValue
            list.append([codigo.firstChild.nodeValue, nombre.firstChild.nodeValue])
    return list



def get_datosImpuestosIce():
    list = []
    file = open(os.path.join('XML','DtsRfr.xml'))
    data = file.read()
    dom = xml.dom.minidom.parseString(data)
    file.close()
    for element in dom.getElementsByTagName("datosImpuestosIce"):
        #print element
        for ice in element.getElementsByTagName("ImpuestoIce"):
            version = ice.getAttribute("version")
            descripcion = ice.getAttribute("descripcion")
            codigo_impuesto = ice.getAttribute("codigoImpuesto")
            tasa = ice.getAttribute("tasa")
            #print descripcion
            list.append([str(codigo_impuesto), str(descripcion)])
    return list


def get_datosDobleTributacion():
    list = []
    file = open(os.path.join('XML','DtsRfr.xml'))
    data = file.read()
    dom = xml.dom.minidom.parseString(data)
    file.close()
    for element in dom.getElementsByTagName("datosDobleTributacion"):
        #print element
        for doble in element.getElementsByTagName("dobleTributacion"):
            codigoPais = doble.getElementsByTagName("codigoPais")[0]
            pais = doble.getElementsByTagName("Pais")[0]
            #print codigoPais.firstChild.nodeValue, pais.firstChild.nodeValue
            list.append([str(codigoPais.firstChild.nodeValue), str(pais.firstChild.nodeValue)])
    return list

def get_datosSiNo():
    list = []
    file = open(os.path.join('XML','DtsRfr.xml'))
    data = file.read()
    dom = xml.dom.minidom.parseString(data)
    file.close()
    for element in dom.getElementsByTagName("datosSiNo"):
        #print element
        for doble in element.getElementsByTagName("siNo"):
            codigo = doble.getElementsByTagName("codigo")[0]
            desc = doble.getElementsByTagName("descripcion")[0]
            #print codigo.firstChild.nodeValue, desc.firstChild.nodeValue
            list.append([codigo.firstChild.nodeValue, str(desc.firstChild.nodeValue)])
    return list


def get_datosEstadoCivil():
    list = []
    file = open(os.path.join('XML','DtsRfr.xml'))
    data = file.read()
    dom = xml.dom.minidom.parseString(data)
    file.close()
    for element in dom.getElementsByTagName("datosEstadoCivil"):
        #print element
        for doble in element.getElementsByTagName("estadoCivil"):
            codigo = doble.getElementsByTagName("codigo")[0]
            desc = doble.getElementsByTagName("descripcion")[0]
            #print codigo.firstChild.nodeValue, desc.firstChild.nodeValue
            list.append([codigo.firstChild.nodeValue, str(desc.firstChild.nodeValue)])
    return list


def get_datosTipoActoDonacion():
    list = []
    file = open(os.path.join('XML','DtsRfr.xml'))
    data = file.read()
    dom = xml.dom.minidom.parseString(data)
    file.close()
    for element in dom.getElementsByTagName("datosTipoActoDonacion"):
        #print element
        for doble in element.getElementsByTagName("tipoActoDonacion"):
            codigo = doble.getElementsByTagName("codigo")[0]
            desc = doble.getElementsByTagName("descripcion")[0]
            #print codigo.firstChild.nodeValue, desc.firstChild.nodeValue
            list.append([codigo.firstChild.nodeValue, str(desc.firstChild.nodeValue)])
    return list

def get_datos_codigo_documento():
    list = []
    file = open(os.path.join('XML','DtsRfr.xml'))
    data = file.read()
    dom = xml.dom.minidom.parseString(data)
    file.close()
    for element in dom.getElementsByTagName("datos_codigo_documento"):
        #print element
        for doble in element.getElementsByTagName("codigo_documento"):
            codigo = doble.getElementsByTagName("codigo")[0]
            nombre = doble.getElementsByTagName("nombre")[0]
            #print codigo.firstChild.nodeValue, nombre.firstChild.nodeValue
            list.append([codigo.firstChild.nodeValue, nombre.firstChild.nodeValue])
    return list

#get_datos_codigo_documento()




